<!doctype html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <style>
            [ng-cloak] {
                display: none;
            }
        </style>
        <script>
            // include angular loader, which allows the files to load in any order
            /*
             AngularJS v1.0.7
             (c) 2010-2012 Google, Inc. http://angularjs.org
             License: MIT
             */
            (function(i) {
                'use strict';
                function d(c, b, e) {
                    return c[b] || (c[b] = e())
                }
                return d(d(i, "angular", Object), "module", function() {
                    var c = {};
                    return function(b, e, f) {
                        e && c.hasOwnProperty(b) && (c[b] = null);
                        return d(c, b, function() {
                            function a(a, b, d) {
                                return function() {
                                    c[d || "push"]([a, b, arguments]);
                                    return g
                                }
                            }
                            if (!e)
                                throw Error("No module: " + b);
                            var c = [], d = [], h = a("$injector", "invoke"), g = {_invokeQueue: c, _runBlocks: d, requires: e, name: b, provider: a("$provide", "provider"), factory: a("$provide", "factory"), service: a("$provide", "service"),
                                value: a("$provide", "value"), constant: a("$provide", "constant", "unshift"), filter: a("$filterProvider", "register"), controller: a("$controllerProvider", "register"), directive: a("$compileProvider", "directive"), config: h, run: function(a) {
                                    d.push(a);
                                    return this
                                }};
                            f && h(f);
                            return g
                        })
                    }
                })
            })(window);


            // include a third-party async loader library
            /*!
             * $script.js v1.3
             * https://github.com/ded/script.js
             * Copyright: @ded & @fat - Dustin Diaz, Jacob Thornton 2011
             * Follow our software http://twitter.com/dedfat
             * License: MIT
             */
            !function(a, b, c) {
                function t(a, c) {
                    var e = b.createElement("script"), f = j;
                    e.onload = e.onerror = e[o] = function() {
                        e[m] && !/^c|loade/.test(e[m]) || f || (e.onload = e[o] = null, f = 1, c())
                    }, e.async = 1, e.src = a, d.insertBefore(e, d.firstChild)
                }
                function q(a, b) {
                    p(a, function(a) {
                        return!b(a)
                    })
                }
                var d = b.getElementsByTagName("head")[0], e = {}, f = {}, g = {}, h = {}, i = "string", j = !1, k = "push", l = "DOMContentLoaded", m = "readyState", n = "addEventListener", o = "onreadystatechange", p = function(a, b) {
                    for (var c = 0, d = a.length; c < d; ++c)
                        if (!b(a[c]))
                            return j;
                    return 1
                };
                !b[m] && b[n] && (b[n](l, function r() {
                    b.removeEventListener(l, r, j), b[m] = "complete"
                }, j), b[m] = "loading");
                var s = function(a, b, d) {
                    function o() {
                        if (!--m) {
                            e[l] = 1, j && j();
                            for (var a in g)
                                p(a.split("|"), n) && !q(g[a], n) && (g[a] = [])
                        }
                    }
                    function n(a) {
                        return a.call ? a() : e[a]
                    }
                    a = a[k] ? a : [a];
                    var i = b && b.call, j = i ? b : d, l = i ? a.join("") : b, m = a.length;
                    c(function() {
                        q(a, function(a) {
                            h[a] ? (l && (f[l] = 1), o()) : (h[a] = 1, l && (f[l] = 1), t(s.path ? s.path + a + ".js" : a, o))
                        })
                    }, 0);
                    return s
                };
                s.get = t, s.ready = function(a, b, c) {
                    a = a[k] ? a : [a];
                    var d = [];
                    !q(a, function(a) {
                        e[a] || d[k](a)
                    }) && p(a, function(a) {
                        return e[a]
                    }) ? b() : !function(a) {
                        g[a] = g[a] || [], g[a][k](b), c && c(d)
                    }(a.join("|"));
                    return s
                };
                var u = a.$script;
                s.noConflict = function() {
                    a.$script = u;
                    return this
                }, typeof module != "undefined" && module.exports ? module.exports = s : a.$script = s
            }(this, document, setTimeout)

            // load all of the dependencies asynchronously.
            $script([
                'mobile.js',
                'lib/angular/angular.js',
                'lib/angular/angular-route.js',
                'lib/jquery-2.0.3.min.js',
                'js/tictactoe.js',
                'js/app.js',
                'js/services.js',
                'js/filters.js',
                'js/directives.js',
                'js/controllers/main.js',
                'js/controllers/game.js',
                'js/ai/Estimate.js',
                'js/ai/Game.js',
                'js/ai/Move.js',
                'js/ai/Population.js',
                'lib/jsworker.min-2.0.js',
                'lib/fastclick.js'
            ], function() {
                $script([
                    'lib/bootstrap/js/bootstrap.min.js'    // need jquery.min.js first
                ], function() {
                    $script([
                        'phonegap.js'    // in the end
                    ], function() {
                        console.log('all js are loaded');
                    })
                })
            });
        </script>
        <title>TicTacToe App</title>
        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
        <!-- Bootstrap -->
        <link href="lib/bootstrap/css/bootstrap.min.css" rel="stylesheet">
        <link href="css/app.css" rel="stylesheet">
    </head>
    <body ng-cloak>

        <menu></menu>
        
        <div class="container" ng-view>

        </div>
        
        <footer></footer>

        <popup id="popupQuitGameSingle" data="{{
            {
                title: 'Warning',
                info: 'Are you sure you want to give up ?',
                cancelBtnText : 'No, continue',
                okBtnText : 'Yes, leave',
                okBtnId : 'popupQuitGameSingleId',
                okBtnClass : 'danger'
            } 
        }}">
        </popup>
    
        <popup id="popupQuitGameMulti" data="{{
            {
                title: 'Warning',
                info: 'Are you sure you want to quit this game?. Both players agree?',
                cancelBtnText : 'No, continue',
                okBtnText : 'Yes, leave',
                okBtnId : 'popupQuitGameMultiId',
                okBtnClass : 'danger'
            } 
        }}">
        </popup>
        
        <popup id="popupResetStatConfirm" data="{{
            {
                title: 'Warning',
                info: 'Are you sure you want reset all game statistic on this device?',
                cancelBtnText : 'Cancel',
                okBtnText : 'Reset',
                okBtnId : 'popupResetStatConfirmId',
                okBtnClass : 'danger'
            } 
        }}">
        </popup>
    
        <popup id="popupEndGameDialog" data="{{
            {
                title: 'Info',
                info: 'Would you like to play again ? ',
                cancelBtnText : 'Back to menu',
                okBtnText : 'Play again',
                okBtnId : 'popupEndGameDialogOkId',
                okBtnClass : 'primary',
                cancelBtnClass: 'warning',
                cancelBtnId : 'popupEndGameDialogCancelId',
                infoAddId : 'popupEndGameDialogInfo'
            } 
        }}">
        </popup>
        
    </body>
</html>
